package io.nutz.nutzsite.common.mvc.processor;
import io.nutz.nutzsite.common.bean.OnlineSession;

import org.nutz.mvc.ActionContext;
import org.nutz.mvc.ActionInfo;
import org.nutz.mvc.NutConfig;
import org.nutz.mvc.impl.processor.AbstractProcessor;

/**
 *  全局变量设置
 *
 * @Author: Haimming
 * @Date: 2019-10-15 16:03
 * @Version 1.0
 */
public class SessionBeginProcessor extends AbstractProcessor {

    @Override
    public void init(NutConfig config, ActionInfo ai) throws Throwable {

    }
    /**
     * 同步会话数据到DB 一次请求最多同步一次 防止过多处理 需要放到Shiro过滤器之前
     */
    //    @SuppressWarnings("rawtypes")
    @Override
    public void process(ActionContext ac) throws Throwable {
    	//HttpSession session= ac.getRequest().getSession();
    	OnlineSession session=new OnlineSession();
    	//OnlineSession session = (OnlineSession) request.getAttribute(ShiroConstants.ONLINE_SESSION);
        // 如果session stop了 也不同步
        // session停止时间，如果stopTimestamp不为null，则代表已停止
        if (session != null && session.getLoginName()!= null && session.getStopTimestamp() == null)
        {
            //onlineSessionDAO.syncToDb(session);
            //AsyncManager.me().execute(asyncFactory.syncSessionToDb(session));
        }

        
        doNext(ac);
    }
}